#include <signal.h>
#include <stdio.h>
#include <unistd.h>

static int is_running = 1;
static void use_resource()
{
    printf("使用了一些资源\n");
}

static void free_resource()
{
    printf("释放了一些资源\n");
}

static void sign_handler(int signum)
{
    if (signum == SIGINT)
    {
        printf("接收到ctrl+c结束的信号\n");
        is_running = 0;
    }
    else if (signum == SIGTERM)
    {
        printf("接收到kill结束的信号\n");
        is_running = 0;
    }
}


int main(int argc, char const *argv[])
{

    // 注册信号(ctrl+c)处理函数
    signal(SIGINT, sign_handler);
    // 注册信号(kill)处理函数
    signal(SIGTERM, sign_handler);
    use_resource();


    // 程序一直在运行
    while(is_running == 1)
    {
        printf("程序正在运行\n");
        sleep(1);
    }

    // 释放资源
    free_resource();
    
    return 0;
}
